package com.example.service;

import com.example.entity.ServerInfo;
import com.example.entity.ServerMonitorData;
import com.example.entity.ServerDailyStats;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 服务器监控Service接口
 */
public interface ServerMonitorService {
    
    /**
     * 获取服务器信息
     */
    ServerInfo getServerInfo(Long serverId);
    
    /**
     * 保存服务器信息
     */
    void saveServerInfo(ServerInfo serverInfo);
    
    /**
     * 获取指定时间范围内的监控数据
     */
    List<ServerMonitorData> getMonitorData(Long serverId, LocalDateTime startTime, LocalDateTime endTime);
    
    /**
     * 保存监控数据
     */
    void saveMonitorData(ServerMonitorData monitorData);
    
    /**
     * 保存每日统计数据
     */
    void saveDailyStats(ServerDailyStats dailyStats);
    
    /**
     * 获取每日统计数据
     */
    List<ServerDailyStats> getDailyStats(Long serverId, LocalDateTime startTime, LocalDateTime endTime);
    
    /**
     * 检查并发送报警邮件
     */
    void checkAndSendAlert(Long serverId);

    /**
     * 获取本机服务器ID
     */
    Long getLocalServerId();
} 